package com.命令模式.案例01.deng;

import com.命令模式.案例01.CommandInterface;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 关灯命令：【不是人，也不是物，就是一个客观存在的命令】
 * 此命令会将：命令的发起者和实际执行者链接在一起
 * 具体关灯命令实现类
 * 这是一个命令，就是需要去执行的命令，并不是某一个人或者事务，而是一个命令
 * 命令就是将发起者和实际接收执行者链接在一起
 */

@Service
public class GuanDengCommandImpl implements CommandInterface {

    /**
     * 关灯命令：将实际执行者绑定
     */
    @Autowired
    DengReceiver dengReceiver;

    /**
     * exce()去执行关灯命令
     */
    @Override
    public void exce() {
        //真正去干活的人【真正去执行命令的人】：关灯命令下达了，我去执行关灯
        dengReceiver.off();
    }

    /**
     * undo()撤销命令
     */
    @Override
    public void undo() {
        //真正去干活的人【真正去执行命令的人】:撤销命令下达，我去执行撤销
        dengReceiver.on();
    }
}
